package org.ccay.security.dao;

import java.util.List;

import org.apache.ibatis.annotations.Param;
import org.ccay.core.base.PageVO;
import org.ccay.core.base.PagedResult;
import org.ccay.security.vo.UserVO;

/**
 * 用户的数据操作
 * @author chaowangbang
 * @since 2017年2月5日
 */
public interface IUserDimensionDataProviderDao {
	
	/**
	 * 用户分页查询
	 * @param user 
	 * 支持条件 id(精确) name(模糊) displayName(模糊) email(模糊) phone(模糊) roleId(精确) programId(精确) programItem(精确)
	 * enabled 有效用户是指 1、未删除 2、状态为有效 3、当前系统时间小于过期时间
	 * deleted 是否删除
	 * @param page 分页参数
	 * @return 符合条件的用户分页结果
	 */
	PagedResult<UserVO> findPagedUsers(@Param("user")UserVO user,@Param("page")PageVO page);
	
	/**
	 * 获取用户（通过id）
	 * @param userId
	 * @return user or null
	 */
	List<UserVO> findUserByIds(List<Long> userId);

}
